Skip to content

Rebalance the fishing business so the boat is worth buying#95

Merged
dmccoystephenson merged 1 commit into
mainfrom
feature/rebalance-fishing-business
Jun 13, 2026
Merged

Rebalance the fishing business so the boat is worth buying#95
dmccoystephenson merged 1 commit into
mainfrom
feature/rebalance-fishing-business

Conversation

@dmccoystephenson

Copy link
Copy Markdown
Member

Summary

Addresses the playtest finding in #94: the fishing business was strictly dominated by bait/rod upgrades because workers only ever caught the cheapest species.

  • src/business/business.py: workers now land a rarity-rolled species (fish.rollFishType) each day instead of a hard-coded Minnow, so crew income tracks the same value distribution as the player's own fishing. Removed the now-unused WORKER_CATCH_SPECIES. WORKER_FISH_PER_DAY trimmed 6 → 5 so passive income supplements rather than overshadows active fishing.

Balance (re-ran the playtest simulation on the real game code)

  • Per-worker net income $8/day → **$22/day**; full-crew boat payback ~12 days → ~4–5 days.
  • "Business" strategy time-to-$10k: median 25 days (vs 20 for pure reinvest) — competitive, no longer a trap, and not dominant over active play.

Test plan

  • python3 -m compileall -q src clean
  • SDL_VIDEODRIVER=dummy SDL_AUDIODRIVER=dummy python3 -m pytest — 211 passed
  • New test_workers_catch_rolled_species_not_just_minnow (patches rollFishType); existing count-based business/timeService tests still hold against WORKER_FISH_PER_DAY.

Triage note

  • Make the shop's money recharge over time. #20 (shop money recharge) deferred again — it hinges on a design decision (should a depleting shop budget gate how many fish you can sell per day?) that warrants maintainer input rather than autonomous implementation.

Closes #94

🤖 Generated with Claude Code

A playtest pass found the business strictly dominated by bait/rod upgrades:
workers only ever caught the cheapest species (Minnow, ~$8/day net per worker),
so the $500 boat had a ~12-day payback and buying it actually slowed the run.

Workers now fish the same waters as the player, landing a rarity-rolled species
(fish.rollFishType) instead of a hard-coded Minnow. Per-worker net income roughly
triples (~$22/day) and a full crew's boat payback drops to ~4-5 days, making the
business a competitive parallel investment rather than a trap. WORKER_FISH_PER_DAY
is trimmed 6->5 so the passive income supplements active fishing without
overshadowing it (verified by re-running the playtest simulation).

Closes #94

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@dmccoystephenson dmccoystephenson left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review:

  • Scope: PASS — business.py engine + its test only.
  • Tests-fix: PASS — test_workers_catch_rolled_species_not_just_minnow fails under the old hard-coded-Minnow code; count-based tests still pass against WORKER_FISH_PER_DAY.
  • Schema/save-safety: PASS — no persisted-field or schema change (hasBoat/workers unchanged); not a protected path.
  • Issue resolution: PASS — workers roll species; balance re-verified via the playtest sim (per-worker $8->$22, payback ~12->~4-5 days).
  • Deterministic-tests: PASS — rollFishType patched in the new test. CI: PASS.

@dmccoystephenson dmccoystephenson merged commit ea3fc09 into main Jun 13, 2026
1 check passed
@dmccoystephenson dmccoystephenson deleted the feature/rebalance-fishing-business branch June 13, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Balance: the fishing business underperforms simple upgrades (boat rarely worth buying)

1 participant